package com.tim.util;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.Part;
import java.io.File;
import java.io.IOException;
import java.util.UUID;

/**
 * 作者：Tim
 * 时间：2021/4/17 10:15
 */
public class FileUploadUtil {
    public static String upload(HttpServletRequest req) throws IOException, ServletException {
        /**
         *
         *  实现文件上传
         *      1、将文件保存下来
         *      保存在哪
         *       a、保存到当前的项目下
         *       b、保存到本地磁盘上
         *       c、保存到图片服务器上
         *      2、将图片的路径保存到数据库
         *
         */
        Part part = req.getPart("file"); //将上传的文件封装成一个part类
        //   将上传的图片保存到  D:\JavaEE2101\Upload
        File file = new File("D:\\JavaEE2101\\Upload");
        if(!file.exists()){
            //文件夹不存在创建文件夹
            file.mkdirs();
        }
        //获取新名称
        //getSubmittedFileName是获取上传文件名
        //getName是获取字段名
        String filename = getNewFileName(part.getSubmittedFileName());
        //将图片保存到指定位置
        part.write("D:\\JavaEE2101\\Upload\\"+filename);
        //返回保存到数据库的路径
        return "upload/"+filename;
    }

    public static String getNewFileName(String fileName){
        //取出文件名的后缀
        String fileExt = fileName.substring(fileName.lastIndexOf("."));
        //生成UUID   并把-替换成空串
        String uuid = UUID.randomUUID().toString().replace("-", "");
        return uuid+fileExt;
    }
}
